package com.zhixing.reward.service;

import com.zhixing.common.domain.entity.CouponUseInfo;
import com.zhixing.reward.domain.dto.QueryParams;
import com.zhixing.reward.domain.vo.CouponRecordVO;
import com.zhixing.reward.domain.vo.CouponVO;

import java.math.BigDecimal;
import java.util.List;

public interface CouponService {
    void sendNewcomerCoupon(Integer userId);

    List<CouponVO> getHomePageCoupon(Integer userId);

    List<CouponRecordVO> getUnusedCoupon(Integer userId);

    List<CouponRecordVO> getInvalidCouponByPage(Integer userId, QueryParams queryParams);

    void receiveCoupon(Integer userId, Integer couponId);

    List<CouponRecordVO> getCanUseCouponByAmount(Integer userId, BigDecimal amount);

    CouponUseInfo getCouponUseInfoById(Integer couponId, Integer userId);

    void useCoupon(Integer couponId, Integer userId);
}
